跳到主要内容

archecker 表级别恢复

archecker 实用程序

可以使用 archecker 实用程序执行时间点表级别恢复,这种恢复将从归档和逻辑日志中抽取表或表的一部分。

archecker 实用程序通过指定要从中抽取数据的源表、放置数据的目标表和链接两个表的 INSERT 语句来恢复表。

有关使用 archecker 实用程序验证备份的信息,请参阅onbar -v 语法:验证备份。

archecker 实用程序概述

当需要恢复数据库的一部分、一张表、表的一部分或一组表时,archecker 实用程序很有用。 在需要跨服务器版本或平台移动表的情形下,它也很有用。

在以下情况中使用 archecker:

  • 恢复数据

    可以使用 archecker 实用程序恢复先前已使用 onbar 或 ontape 备份的特定表或一组表。这些表可以被恢复到特定的时间点。 这一点很有用,例如,它可用于恢复被意外删除的表。

    不能从远程设备恢复数据。

    在执行表级别恢复时不能使用共享内存连接。

  • 复制数据

    archecker 实用程序也可被用作一种复制数据的方法。 例如,可以把表从生产系统移动到另一个系统。

    archecker 实用程序比其他复制数据的机制更高效。 由于 archecker 以文本形式抽取数据,它可以在不同平台或服务器版本之间复制数据。

  • 迁移数据

    也可以将 archecker 实用程序用作迁移工具,以将表移动到其他 GBase 8s 服务器。

archecker 实用程序旨在恢复特定表或表集合。其他情况需要使用不同的实用程序。例如,在以下数据恢复方案中使用 onbar 或 ontape:

  • 整个系统恢复
  • 从磁盘故障中恢复

要配置 archecker 实用程序的行为,请使用 archecker 配置文件。 要定义 archecker 恢复的数据的模式,请使用 archecker 模式命令文件。这些文件在以下部分中描述。

archecker 配置文件

archecker 实用程序使用配置文件来设置某些参数。

将 AC_CONFIG 环境变量设置为 archecker 配置文件的完整路径名。缺省情况下,AC_CONFIG 环境变量设置为 $GBASEDBTDIR/etc/ac_config.std。 如果将 AC_CONFIG 设置为用户定义的文件,必须指定包括文件名在内的完整路径。

有关该文件中使用的配置参数的信息,请参阅archecker 实用程序配置参数和环境变量。

模式命令文件

archecker 实用程序使用模式命令文件指定以下各项:

  • 源表
  • 目标表
  • 表的模式
  • 数据库
  • 外部表
  • 表恢复到的时间点
  • 其他选项

该文件使用一种类似 SQL 的语言提供 archecker 用于执行数据恢复的信息。 有关支持的语句和语法的完整信息,请参阅 archecker 模式引用。

有两种设置模式命令文件的方法:

  • 在 archecker 配置文件中设置 AC_SCHEMA 配置参数。 有关更多信息,请参阅 AC_SCHEMA 配置参数。
  • 使用 -f cmdname 命令行选项。有关更多信息,请参阅 archecker 实用程序命令的语法。

如果同时指定了两种方法,-f 命令行选项优先。

表级别恢复和语言环境

对于表级别恢复,如果要恢复的表(归档中的表)的语言环境代码集不同于缺省语言环境的代码集 (en_US.8859-1),那么必须设置 DB_LOCALE 环境变量来使其代码集与要恢复的归档表的语言环境相同。

在表级别恢复过程中将不执行任何代码集转换,数据库或要恢复的表的语言环境代码集必须与此数据库或数据将恢复到的表的语言环境代码集相匹配。此外,相同 DB_LOCALE 信息将用于通过相同表级别恢复命令模式文件进行恢复的所有表。

使用 archecker 进行数据恢复

使用 archecker 实用程序可执行两种类型的恢复操作。

archecker 实用程序执行的两种恢复类型如下:

  • 基于 0 级归档的物理恢复。
  • 先执行物理恢复,然后执行逻辑恢复,逻辑恢复使用 0 级归档和逻辑日志以将数据恢复到特定时间点。

archecker 在读取命令文件时,确定是只执行物理恢复,还是在物理恢复后执行逻辑恢复。 缺省情况下,archecker 执行物理和逻辑恢复。 如果使用了 WITH NO LOG 子句,archecker 将不执行逻辑恢复。

archecker 在单纯的物理恢复中使用的过程和资源不同于在物理及逻辑恢复中所使用的。 以下各部分概述了这些过程。

物理恢复

当 archecker 实用程序执行物理恢复时,该实用程序将从 0 级归档抽取数据。

执行物理恢复时,archecker 执行以下任务:

  • 在数据恢复之前,禁用所有约束(包括引用此目标表的外部约束)、索引和触发器。如果表没有约束、索引或触发器,那么恢复性能更佳。

  • 读取模式命令文件,以确定以下各项:

    • 源表
    • 目标表
    • 所有表的模式
    • 表位于的数据库空间的名称
    • 从中抽取数据的特定归档
  • 扫描归档,寻找属于被恢复的表的页面

  • 处理数据页的每一行,以确定该行是完整的还是部分的。

    如果该行目前是部分的,那么 archecker 将确定该行剩余部分是否已分阶段,如未分阶段,那么将其分阶段以便于后续处理。

  • 对于单纯的物理恢复,对该行应用过滤器并拒绝不需要的行。

  • 将该行插入目标表。

要使用原始模式恢复表,必须指定源模式。要使用不同模式恢复表,目标模式中的表名称必须与源模式中的表名称不同。使用不同模式恢复之后,可以使用 rename table 语句重命名表。

逻辑恢复

物理恢复后,逻辑恢复可以进一步将表恢复到用户指定的时间点。 为此,archecker 实用程序读取已备份的逻辑日志,将它们转换成 SQL 语句,然后重放这些语句以恢复数据。

在执行逻辑恢复之前,确保所要恢复的事务都包含在已备份的逻辑日志中。 archecker 实用程序不能从当前日志中重放事务。 不能对外部表执行逻辑恢复。

如果逻辑恢复期间一个表被更改、删除或截断,那么恢复因该表终止。 终止发生在执行更改的点上。 archecker 消息日志文件中的消息将记录发生了更改操作。

archecker 实用程序无法在逻辑恢复非记录数据库中的压缩表期间处理压缩字典。如果逻辑恢复发现为表创建了新的压缩字典,那么恢复将为该表停止。

执行逻辑恢复时,archecker 使用两个同时运行的进程:

stager

汇编逻辑日志并将其保存在表中。

applier

将日志记录转换为 SQL 语句并执行这些语句。

stager

为收集相关的逻辑日志记录,stager 将执行以下步骤:

  1. 仅扫描已备份的逻辑日志

    stager 读取逻辑日志备份文件并汇编成完整的日志记录。

  2. 测试逻辑日志记录

    任何不适用于被恢复的表的日志记录将被拒绝。

  3. 将逻辑日志信息插入表中

    如果没有拒绝逻辑日志记录,那么会将它插入到一个阶段表中。

applier

applier 从 stager 创建的控制表中读取数据。它开始处理必需的事务,并更新控制表以显示该事务正在处理。 接下来,它按顺序对每条日志记录逐行进行操作,直到事务落实。

所有对控制表的更新在同一个事务中以日志记录修改的形式出现。 这使得所有的工作可以作为一个独立单元完成或撤销,始终保持了完整性。 如果发生了错误,就会回滚事务,该错误将记录到该事务的控制表条目中。

如果数据正在恢复而数据库管理员决定包含逻辑恢复,那么两个附加的工作列和一个索引将被添加到目标表中。 这些列包含了原始行标识及原始部件号。 这些列提供了在原始的源归档中识别该行位置的唯一键。 要控制索引的存储,可使用 SET WORKSPACE 命令(请参阅 SET 语句)。 否则会将索引和表存储在同一个空间。

applier 结束且恢复完成之后,这些列以及对它们创建的任何索引都将从目标表中删除。

archecker 实用程序命令的语法

archecker 实用程序为从归档中恢复数据提供了一个命令行界面。要使用 archecker,您必须指定一个配置文件和一个模式命令文件。

元素描述
-b提供使用 onbar 创建的备份的直接 XBSA 访问。
-d删除先前的 archecker 恢复文件,但 archecker 消息日志除外。有关更多信息,请参阅删除恢复文件的时间。
-D删除先前的 archecker 恢复文件,但 archecker 消息日志除外,然后退出。 -D 选项可以和 -X 选项一起使用,以删除先前的恢复文件以及 sysutils 数据库中的任何表级别恢复工作表。 有关更多信息,请参阅删除恢复文件的时间。
-f cmdfile指定 archecker 使用由 cmdfile 指定的命令文件。 该选项将覆盖 AC_SCHEMA 配置参数的值。 有关更多信息,请参阅模式命令文件。
-i手动初始化系统。
-lphys,stage,apply指定逻辑恢复的级别:
phys
启动系统的逻辑恢复,但在物理恢复完成后停止。备份的逻辑日志必须可用。
stage
物理恢复完成后,从存储管理器抽取逻辑日志并将其登台到对应的表中,再启动 stager。
apply
启动 applier。applier 提取存储在登台表中的事务,将其转换为 SQL,并重放操作。
如果未列出 -l 选项,那么缺省的逻辑恢复级别为 -lphys,stage,apply。您可以指定逻辑恢复级别的任意组合,以逗号分隔。 -l 和级别之间不允许有空格。
有关更多信息,请参阅手动控制逻辑恢复。
-s将状态消息打印到屏幕。
-t指定 ontape 作为备份实用程序。
-v指定详细方式。
-X指定表级别恢复。
-V显示 GBase 8s 版本信息。
-version显示有关 GBase 8s 的构建操作系统、构建版本号和构建日期的附加版本信息。

当您使用 onbar 时,可以使用 onbar 命令来访问 archecker 信息,以验证备份。 有关此命令的语法的信息,请参阅 onbar -v 语法:验证备份。

手动控制逻辑恢复

您可以使用 -l 命令行选项手动控制 stager 和 applier。

以下示例显示了如何执行逻辑恢复。 在所有示例中,模式命令文件名都是 cmdfile。

下面是一个典型的用法示例:

archecker -bvs -f cmdfile

该命令等同于以下命令:

archecker -bvs -f cmdfile -lphys,stage,apply

物理恢复完成后,archecker 实用程序启动 stager。stager 启动后,applier 自动启动。

在以下示例中,-lphys 选项执行单纯的物理恢复:

archecker -bvs -f cmdfile -lphys

在以下示例中,-lstage 选项启动 archecker stager。stager 从存储管理器中抽取逻辑日志记录,并将适用的记录保存到表中。

archecker -bvs -f cmdfile -lstage

stager 只应在物理恢复完成后才启动。

在以下示例中,-lapply 选项启动了 archecker applier。它在 acu_control 表中寻找要恢复的事务。 applier 应该在 stager 启动后才启动。

archecker -bvs -f cmdfile -lapply

使用多个存储管理器执行恢复

如果您使用多个存储管理器,您可以通过在每个节点上配置 archecker,用 archecker 执行表级别恢复。

要执行涉及多个存储管理器的表级别恢复:

  1. 在每个节点上创建一个 archecker 配置文件。

  2. 在每个节点上创建一个模式命令文件。

  3. 通过在单个节点上执行 archecker -DX 命令来除去旧的恢复。

  4. 通过在每个节点上执行 archecker -bX -lphys 命令来启动物理恢复。

    限制

    不要使用 -d 选项。

  5. 物理恢复完成后,通过在包含逻辑日志记录的每个节点上执行 archecker -bX -lstage 命令来启动逻辑恢复。

    限制

    不要使用 -d 选项。

  6. 启动所有 stager 之后,通过在单个节点上执行 archecker -bX -lapply 命令来完成恢复。

执行并行恢复

如果在分开的数据库空间中驻留了一张分段表,您可以通过为每个数据库空间使用不同的模式命令文件执行多个 archecker 命令来并行地执行物理的表级别恢复。

在 0 级归档期间,不能有任何会更改表的模式的打开事务。正在恢复的表或表的分段必须存在于 0 级归档中。 在逻辑恢复期间不能创建或添加该表或分段。 逻辑恢复期间创建的表或添加的分段将被忽略。

因为拆离的分段不再是原始表的一部分,applier 从该点起不会处理拆离的分段的日志记录或该分段的任何其他日志记录。archecker 消息日志文件中的消息将指示出现了拆离。

在本示例中,该表跨越三个数据库空间分段。 相应的模式命令文件名为 cmdfile1、cmdfile2 和 cmdfile3。以下命令删除先前的恢复,然后在每个数据库空间上并行地执行物理恢复。

  • archecker -DX
  • archecker -bvs -f cmdfile1 -lphys
  • archecker -bvs -f cmdfile2 -lphys
  • archecker -bvs -f cmdfile3 -lphys

不能并行地执行逻辑恢复。

使用大对象恢复表

onbar 支持对智能大对象和二进制大对象进行表级别恢复。

  • 智能大对象

    表级别恢复还支持仅针对物理恢复的智能大对象(从 0 级归档恢复)。

    必须用 CREATE TABLE 语句的 PUT 子名来指定要恢复智能大对象列的存储位置。恢复的智能大对象用 create-time 标志 LO_NOLOG 和 LO_NOKEEP_LASTACCESS_TIME 创建。如果在智能大对象列的对象表中指定这些标志,那么它们将覆盖 LOG 和 KEEP ACCESS TIME 列属性。

  • 二进制大对象

    表级别恢复支持恢复表空间二进制大对象,但不支持 Blob 空间二进制大对象。如果尝试恢复 Blob 空间二进制大对象,那么该值设置为 NULL 并发出警告。

删除恢复文件的时间

如果重复运行相同的 archecker 表级别恢复,那么必须清除先前运行中的 archecker 表级别恢复工作文件和表。这些工作表是指 sysutils 数据库中在 archecker 表级别恢复期间创建的 acu_ 表。在 archecker 表级别恢复完成之后,将保留这些 archecker 表级别恢复工作文件和表,以供诊断问题之需。

通过显式运行命令 archecker -DX 或在运行下一条 archecker 表级别恢复命令时使用 -d 选项,可以除去这些工作文件和表。-d 选项表示在新的恢复开始之前除去前一次 archecker 表级别恢复运行中的所有文件和表。

  • ontape 示例:archecker -tdvs -fschema_command_file
  • onbar 示例:archecker -bdvs -fschema_command_file

archecker 模式引用

本节中的主题描述了 archecker 模式命令文件使用的类似 SQL 的语句。该文件提供 archecker 实用程序用于执行数据恢复的信息。

使用模式命令文件可指定源表和目标表,并定义表模式。

有关指定 archecker 使用哪个命令文件的信息,请参阅模式命令文件。

以下是 archecker 支持的语句:

  • CREATE TABLE
  • DATABASE
  • INSERT INTO
  • RESTORE
  • SET
重要

archecker 实用程序文件中允许出现标准 SQL 注释,在处理中将忽略这些注释。

以下主题中描述了这些语句的语法。

CREATE TABLE 语句

CREATE TABLE 语句描述了源表和目标表的模式。如果目标表是外部的,那么使用 CREATE EXTERNAL TABLE 语句部分中描述的 CREATE EXTERNAL TABLE 语句。

语法

archecker 模式命令文件中使用的 CREATE TABLE 的语法与对应 GBase 8s SQL 语句相同。有关此语法的描述,请参阅《GBase 8s SQL 指南:语法》。

用途

您必须在 archecker 模式命令文件中包含源表的模式。 该模式必须和创建归档时源表的模式相同。

源表的模式未由 archecker 验证。如未提供准确的模式,会发生不可预测的结果。

源表不可以是同义词或视图。源表的模式仅需列列表和存储选项。 将忽略诸如扩展数据块大小和锁定方式等其他属性。 对于 onbar 归档,archecker 使用源表的存储空间列表来创建要从存储管理器中检索的对象列表。如果源表是分段的,必须列出所有包含源表数据的数据库空间。archecker 实用程序只从模式命令文件中列出的数据库空间中抽取数据。

如果源表包含约束、索引或触发器,那么在恢复期间将会自动禁用这些约束、索引或触发器。 还会禁用参考目标表的外部约束。 恢复完成后,约束、索引和触发器将被启用。 为了顺利地执行恢复,在执行恢复前除去约束、索引和触发器。

您必须还在命令文件中包含目标表的模式。 如果执行恢复时目标表不存在,将使用所提供的模式创建它。

如果目标表存在,其模式必须和命令文件中指定的模式匹配。随后将数据附加到现有的表。

示例

源表和目标表的模式不一定要相同。 以下示例显示了如何能够在执行数据抽取之后对源数据重新分区:

CREATE TABLE source (col1 integer, ...) IN dbspace1;
CREATE TABLE target (col1 integer, ...)
FRAGMENT BY EXPRESSION
MOD(col1, 3) = 0 in dbspace3,
MOD(col1, 3) = 1 in dbspace4,
MOD(col1, 3) = 2 in dbspace5;
INSERT INTO target SELECT * FROM source;

CREATE EXTERNAL TABLE 语句

CREATE EXTERNAL TABLE 语句描述了外部目标表的模式。

语法

archecker 模式文件的 CREATE EXTERNAL TABLE 语句的语法和 SQL CREATE EXTERNAL TABLE 语句不同。

元素描述
column列名。必须符合 SQL 标识语法规则。 有关更多信息,请参阅《GBase 8s SQL 指南:语法》。
data_type列的内置数据类型。有关数据类型的更多信息,请参阅《GBase 8s SQL 指南:参考》。
filename放置数据的文件名或管道设备名。 管道设备必须在启动 archecker 实用程序之前就已存在。
名称存储外部数据的表的名称。 在当前数据库中的表、视图和同义词的名称中必须是唯一的。 必须符合 SQL 数据库对象命名规则。 有关更多信息,请参阅《GBase 8s SQL 指南:语法》。

用途

当使用 CREATE EXTERNAL TABLE 语句向外部表发送数据时,数据只从 0 级归档中抽取。 逻辑日志不在外部表上前滚。

您可以为外部文件指定以下两种格式之一:

DELIMITED:ASCII 定界文件。这是缺省的格式。

GBASEDBT:内部二进制表示法。为优化性能,不应该将过滤器应用于外部表。 如果过滤器存在,将出现警告以指示会将其忽略。

有关使用 CREATE EXTERNAL TABLE 语句的示例,请参阅恢复到外部表。

DATABASE 语句

在 archecker 实用程序中,DATABASE 语句用于设置当前的数据库。

语法

元素描述
dbname当前数据库的名称。

用途

可以使用多条 DATABASE 语句。所有该语句后引用的表的名称都和当前的数据库关联。

如果源表的日志记录方式是 ANSI 而表的模式中使用了缺省的十进制列,那么必须声明数据库的日志记录方式。

如果未声明源数据库的日志记录方式,不会返回错误,但可能出现意外的结果和数据。

示例

在以下示例中,源表和目标表都驻留在同一个数据库 dbs 中。

DATABASE dbs;
CREATE TABLE source (...);
CREATE TABLE target (...);
INSERT INTO target SELECT * from source;

您可以使用多重数据库语句将表从一个数据库抽取到另一个数据库。

DATABASE dbs1;
CREATE TABLE source (...) IN dbspace1;
DATABASE dbs2;
CREATE TABLE target (...) IN dbspace2;
INSERT INTO dbs2:target SELECT * FROM dbs1:source;

INSERT 语句

INSERT 语句告知 archecker 实用程序要抽取的表以及用于放置抽取数据的位置。

语法

元素描述
过滤器 (filter)INSERT 语句支持以下过滤器:
● =, !=, <>
● >, >=, <, <=
● [NOT] MATCHES, [NOT] LIKE
● IS [NOT] NULL
● AND, OR
● TODAY, CURRENT
archecker 实用程序不支持以下操作程序:
● 聚集
● 函数和过程
● 下标
● 子查询
● 视图
● 连接 过滤器只能应用于纯物理的恢复。
src_column要抽取的列的列表。
src_table从中恢复数据的归档中的源表。
target_column数据将被恢复的一个或多个目标列。
target_table数据将被恢复的目标表。

示例

以下示例演示了 INSERT 语句最简单的格式。 该语句从源表中抽取所有行和列到目标表。

INSERT INTO target SELECT * FROM source;

也可以抽取一部分列。在以下示例中,源表中只有两列被插入到目标表中。

CREATE TABLE source (col1 integer, col2 integer, col3 integer, col4 integer);
CREATE TABLE target (col1 integer, col2 integer);
INSERT INTO target (col1, col2) SELECT col3, col4 FROM source;

RESTORE 语句

RESTORE 语句是将表恢复到特定时间点的可选命令。

语法

元素描述
"time"该表要恢复到的日期和时间。

用途

TO 子句用来将表恢复到特定的时间点,该时间点由日期和时间指定,或由保留字 CURRENT 指定。

一个命令文件中只能指定一个 RESTORE 语句。 如果命令文件中未出现该语句,那么系统将被恢复到最近一次使用逻辑日志的时间。

如果出现了 WITH NO LOG 子句,那么只执行物理恢复。 此外,两个额外列及索引未添加到目标表。 纯物理的恢复只基于 0 级归档。

提示: 当没有逻辑日志时,请使用该选项。您将收不到任何有关逻辑恢复的消息。

示例

RESTORE TO CURRENT WITH NO LOG;

SET 语句

SET 语句控制表级卸装库中的不同功能。

语法

元素描述
number设置物理恢复期间在提交前插入的记录数量。缺省值为 1000。
dbspace用作工作存储空间的数据库空间。缺省值是根数据库空间。不能用临时数据库空间作为工作存储空间。

archecker 实用程序在逻辑恢复中为逻辑日志记录的登台创建了几个表。 这些表在 sysutils 数据库中创建,并存储在工作存储空间中。

示例

SET COMMIT TO 20000;
SET WORKSPACE to dbspace1;

模式命令文件示例

本节包含为不同数据恢复方案显示不同命令文件语法的示例。

简单模式命令文件

本示例中的模式命令文件从 dbspace1 的最近一次 0 级备份中抽取一个表。 数据放置在表 test1:tlr 中,并且应用了日志,以使表 tlr 的时间变为当前时间点。

database test1;
create table tlr (
a_serial serial,
b_integer integer,
c_char char,
d_decimal decimal
) in dbspace1;
insert into tlr select * from tlr;
从先前备份中恢复表

本示例中的模式命令文件从 dbspace1 的 0 级备份中抽取一个表。 使用了逻辑日志将表的时间变为“2003-01-01 01:01:01”。 数据放在表test1:tlr 中。

database test1;
create table tlr (
a_serial serial,
b_integer integer,
c_char char,
d_decimal decimal
) in dbspace1;
insert into tlr select * from tlr;
restore to '2003-01-01 01\:01\:01';
恢复到不同的表

本示例中的模式命令文件从 dbspace1 的最近备份中抽取名为 test1:tlr 的表,并将数据放到表 test1:tlr_dest 中。

database test1;
create table tlr (
a_serial serial,
b_integer integer,
c_char char(20),
d_decimal decimal,
) in dbspace1;
create table tlr_dest (
a_serial serial,
b_integer integer,
c_char char(20),
d_decimal decimal
) in dbspace2;
insert into tlr_dest select * from tlr;
抽取列的子集

本示例中的模式命令文件从 dbspace1 的最近备份中抽取表 test1:tlr,并将数据子集放到表 test1:new_dest 中

database test1;
create table tlr (
a_serial serial,
b_integer integer,
c_char char(20),
d_decimal decimal
) in dbspace1;
create table new_dest (
X_char char(20),
Y_decimal decimal,
Z_name char(40)
) in dbspace2;
insert into new_dest (X_char, Y_decimal) select c_char,d_decimal from tlr;
使用数据过滤

本示例中的模式命令文件从 dbspace1 的最近备份中抽取表 test1:tlr,并且只将数据放到表 test1:tlr 中列出条件为真的地方。

重要

过滤器只能应用于物理恢复。

database test1;
create table tlr (
a_serial serial,
b_integer integer,
c_char char(20),
d_decimal decimal,
) in dbspace1;
insert into tlr
select * from tlr
where c_char matches ‘john*'
and d_decimal is NOT NULL
and b_integer > 100;
restore to current with no log;
恢复到外部表

本示例中的模式命令文件从 dbspace1 的最近备份中抽取名为 test1:tlr 的表,并将数据放到名为 /tmp/tlr.unl 的文件中。

database test1;
create table tlr
(a_serial serial,
b_integer integer
) in dbspace1;
create external table tlr_dest
(a_serial serial,
b_integer integer
) using ("/tmp/tlr.unl", delimited );
insert into tlr_dest select * from tlr;
restore to current with no log;
恢复多个表

本示例中的模式命令文件从 dbspace1 的最近备份中抽取表 test1:tlr 和 test1:tlr_2,并且将数据放到 test1:tlr_1_dest 和 test1:tlr_2_dest。 这是恢复多个表的有效方法,因为它只需要扫描一次归档和逻辑日志文件。

database test1;
create table tlr_1
( columns ) in dbspace1;
create table tlr_1_dest ( columns );
create table tlr_2
( columns ) in dbspace1;
create table tlr_2_dest ( columns );
insert into tlr_1_dest select * from tlr_1;
insert into tlr_2_dest select * from tlr_2;
执行分布式的恢复

本示例中的模式命令文件从 dbspace1 的最近备份中抽取表 test:tlr_1,并将数据放到数据库服务器 rem_srv 上的表 rem_dbs:tlr_1 中。

database rem_dbs
create table tlr_1
( columns );
database test1;
create table tlr_1
( columns ) in dbspace1;
insert into rem_dbs@rem_srv.tlr_1
select * from tlr_1;